[Alteryx]距離ツールを利用してポイントからポリゴンまでの距離を測ってみた
はじめに
こんにちは。DI部の大高です。
Alteryxの「空間」カテゴリのツールを触っています。今回は「距離ツール」を利用してポイントからポリゴンまでの距離を測ってみました。
前提条件
Alteryx Designerは「Alteryx 非管理者 Designer / Version 2019.1.6.58192」で検証しています。
距離ツールについて
「距離ツール」を利用すると空間オブジェクト間の距離を測定することができます。利用可能なパターンとしては「ポイントからポイント」、「ポイントからラインのエッジ」、「ポイントからポリゴンのエッジ」の3パターンです。今回は「ポイントからポリゴンのエッジ」の距離計測を試してみます。
「距離ツール」のヘルプページはこちらです。
ワークフローの説明
「テキスト入力ツール」でサンプルの緯度と経度を入力し、「ポイント作成ツール」で空間オブジェクト(ポイント)に変換します。また、「ポリゴン」への変換は「ポリビルドツール」を利用して変換しています。
次に、距離ツールで空間オブジェクト用のフィールドを2つ利用したかったので、「複数ジョイン」ツールを利用して自己結合のようにして、複数フィールド化しています。
その後、ポイント・ポリゴン間の距離を計測して「閲覧ツール」で表示しています。パターンとして下記の4パターンを試したかったので、ポイントデータのみ少し変えて4パターンの検証をしています。
- ポリゴンの外部のポイントからポリゴンのエッジまでの距離計測
- ポリゴンの外部のポイントからポリゴンのエッジまでの距離計測(近傍内点を表示)
- ポリゴンの内部のポイントからポリゴンのエッジまでの距離計測(0距離表示)
- ポリゴンの内部のポイントからポリゴンのエッジまでの距離計測
「テキスト入力ツール」(座標データ)の設定
「テキスト入力ツール」では、以下のようなサンプル座標を設定しています。
Iwamoto
が弊社「岩本町オフィス1」、Hashimoto
が弊社「岩本町オフィス2」のほぼ中心点です。Gaiku
は「岩本町オフィス1」の街区ポリゴンとなっています。
「ポイント作成ツール」の設定
「ポイント作成ツール」の設定は以下の通りです。
「ポリビルドツール」の設定
「ポリビルドツール」の設定は以下の通りです。
「複数ジョインツール」の設定
「複数ジョインツール」では、レコードポジションで結合をさせています。レコードはどちらの入力も1レコードのみです。
このジョインによって、Input_#1
(Iwamoto or Hashimoto)とInput_#2
(Gaiku)を同一レコードに別カラムとして出力させています。
これで下準備は終わりです。
「距離ツール」の設定
「距離ツール」の設定は以下の通りです。
空間オブジェクトフィールド
ここには距離計測の対象となる空間オブジェクトフィールドを指定します。「ポイントまたは中心点ソース」に計測元のポイントを、「ポイント・線・ポリゴンの行先」に計測先のポイントかラインかポリゴンを指定します。
今回は複数ジョインツールから出力されたInput_#1_SpatialObj
(Iwamoto or Hashimoto)とInput_#2_SpatialObj
(Gaiku)をそれぞれ設定しています。
距離を出力
有効にすると計測結果の距離を出力してくれます。
ポリゴンの内部に近傍内点を作成
距離ツールでは、「ポイント」から「ポリゴンのエッジ」への距離を算出してくれますが、その際の「ポリゴンのエッジ」における「近傍内点」を空間オブジェクトとして作成するオプションです。
ポイントがポリゴンの内側にある場合
ポイントがポリゴンの内側にある場合に、「0距離を返す」か「最も近い辺までの距離を返す」か選択できます。今回は両パターン試します。
行先中心点への距離およびドライブタイムを出力
このオプションを有効にすると、有効なデータセットがある場合にドライブタイムを出力してくれます。残念ながら現在は有効なデータセットが無いので無効にします。
基本方位を出力
有効にすると、計測元と計測先の空間オブジェクトの方位(N、NE、SW など)を出力してくれます。今回は有効にします。
方位度数を出力
有効にすると、計測元と計測先の空間オブジェクトの方位度数(0~360)を出力してくれます。今回は有効にします。
単位
計測単位を「マイル」、「キロメートル」、「フィート」、「メートル」から選択できます。今回は近い距離なので「メートル」を選択しました。
実行結果
このワークフローを実行すると、それぞれ以下のようになります。
1. ポリゴンの外部のポイントからポリゴンのエッジまでの距離計測
DistanceMeters
は24.067502
(メートル)なので、想定通りです。Direction
はNE
(北東)、DirectionDegrees
は55.66927
(度)なので、「ポイントからポリゴンのエッジ」の方角で合っていますね。
2. ポリゴンの外部のポイントからポリゴンのエッジまでの距離計測(近傍内点を表示)
こちらの結果は「1.」の結果と同じです。「ポリゴンの内部に近傍内点を作成」オプションを有効にしたので、近傍内点が表示されています。
(2019/04/03現在) 想定ではポリゴンのエッジ上に近傍内点が表示される想定でしたが、何故かポリゴンの内部に表示されています。いくつか他のパターンも試しましたが同様のようです。
コミュニティーの記事にも距離ツールの記事がありましたが、こちらではエッジ上に近傍内点が表示されているので何か設定に違いがあるのかもしれません。
Tool Mastery | Distance - Alteryx Community
3. ポリゴンの内部のポイントからポリゴンのエッジまでの距離計測(0距離表示)
こちらはポリゴンの内部からの距離計測です。オプションで「0距離を返す」としたので、DistanceMeters
は0
(メートル)となっており、Direction
は空文字、DirectionDegrees
は0
(度)となっています。
4. ポリゴンの内部のポイントからポリゴンのエッジまでの距離計測
こちらもポリゴンの内部からの距離計測です。オプションで「最も近い辺までの距離を返す」としたので、DistanceMeters
は-11.80845
(メートル)とマイナス表記となっていました。また、Direction
は空文字、DirectionDegrees
は0
(度)と「0距離を返す」とした場合と同じく無効になっていました。
まとめ
以上、「距離ツール」を利用したポイントからポリゴンまでの距離計測のご紹介でした。
どなたかのお役に立てば幸いです。それでは!
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。